package Class.senior.demo07;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

// Collection接口及方法
public class CollectionClass {
    public static void main(String[] args) {
        // 使用arrayList新建一个数组
        // arrayList是动态数组。动态数组是传统数组的映射
        // 在java里面，数组一旦声明就不能改，这和js不一样。
        Collection collection = new ArrayList();
        System.out.println(collection);
        collection.add("盲僧");
        collection.add(1);
        System.out.println(collection);

        // 数组中元素的个数 动态数组中没有length这个属性，取而代之的是size，可以查看数组中元素的数量
        System.out.println("元素的个数" + collection.size());
        // 判断集合是否是空集合
        System.out.println("是否是空集合" + collection.isEmpty());
        // 判断集合中是否有盲僧 类似于js中的some
        System.out.println("集合中是否有盲僧" + collection.contains("盲僧"));
        // 判断集合中是否都是盲僧 对比两个数组，看两个数组是否一致
        Collection collection2 = new ArrayList();
        collection2.add("盲僧");
        collection2.add(1);
        System.out.println("集合中是否都是盲僧" + collection.containsAll(collection2));

        // 删除
        Collection collection3 = new ArrayList();
        collection3.add("薇恩");
        collection3.add("霞");
        collection3.add("洛");
        collection3.add("希维尔");
        collection3.add("凯瑟琳");
        collection3.add("崔丝塔娜");
        collection3.add("蕾欧娜");
        System.out.println(collection3);
        // 删除指定元素
        collection3.remove("蕾欧娜");
        System.out.println(collection3);
        // removeAll 与containsAll相似， 与其他集合进行对比，如果相等就删除
        // r5etainAll 同上，不过他是把不相等的删除

        // clear 清空数组
//        collection3.clear();
//        System.out.println(collection3);

        // Iterator接口 迭代器

        // 定义动态数组的迭代器
        Iterator iterator = collection3.iterator();
        // next() 返回迭代的元素 一个一个的显示集合中的元素
        System.out.println(iterator.next());
        System.out.println(iterator.next());
        // hasNext Boolean 如果还有可以迭代的元素，就返回true, 否则false
        if (iterator.hasNext()) {
            iterator.remove();
            System.out.println(iterator);
        }

    }
}
